Run-time Correctness Checking Is Algorithmically Undecidable for Pointer Data Structures
نویسندگان
چکیده
Programs routinely use complicated pointer (linked list-type) data structures such as linked lists, doubly linked lists, diierent types of trees, etc. These data structures are usually deened inductively: e.g., a tree can be deened as a structure that results from an empty tree by an arbitrary sequence of adding and deleting elements. When the program runs, these data structures take dynamically changing shapes. To test program correctness, it is important to check, at run-time, whether a current shape is a correct implementation of the corresponding structure. Algorithms are known for checking the \shape correctness" for basic pointer-based data structures such as linked list, binary tree, etc. In this paper, we show that the general problem { verifying that a given shape is an instance of an inductively deened data structure { is algorithmically undecidable.
منابع مشابه
Safety and Liveness in Concurrent Pointer Programs
The incorrect use of pointers is one of the most common source of software errors. Concurrency has a similar characteristic. Proving the correctness of concurrent pointer manipulating programs, let alone algorithmically, is a highly non-trivial task. This paper proposes an automated verification technique for concurrent programs that manipulate linked lists. Key issues of our approach are: auto...
متن کاملThe Verification Grand Challenge and Abstract Interpretation
Interpretation is a theory of approximation of mathematical structures, in particular those involved in the semantic models of computer systems [4,10,11]. Abstract interpretation can be applied to the systematic construction of methods and effective algorithms to approximate undecidable or very complex problems in computer science. The scope of application is rather large e.g. from type inferen...
متن کاملAccelerating Meta Data Checks for Software Correctness and Security
As high GHZ processors become prevalent, adding hardware support to ensure the correctness and security of programs will be just as important, for the average user, as further increases in processor performance. The goal of our research is to focus on developing compiler and hardware support for efficiently performing software checks that can be left on all of the time, even in production code ...
متن کاملParameter Synthesis for Hierarchical Concurrent Real-Time Systems (Full Version)
Modeling and verifying complex real-time systems, involving timing delays, are notoriously difficult problems. Checking the correctness of a system for one particular value for each delay does not give any information for other values. It is hence interesting to reason parametrically, by considering that the delays are parameters (unknown constants) and synthesize a constraint guaranteeing a co...
متن کاملOn Using First-Order Theorem Provers in the Jahob Data Structure Verification System
This paper presents our integration of efficient resolution-based theorem provers into the Jahob data structure verification system. Our experimental results show that this approach enables Jahob to automatically verify the correctness of a range of complex dynamically instantiable data structures, including data structures such as hash tables and search trees, without the need for interactive ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1998